PlantsManagement Module

History

current version 1.0 - 24th January 2020

version date comment
1.0 24/Jan/2020 Original code

License

license: GNU GPL http://www.gnu.org/licenses/

Module Description

Routines to manage forest (silvocoltural practices)



Variables

Type Visibility Attributes Name Initial
type(grid_integer), public :: management_map
logical, public :: plants_management
type(Practice), private, ALLOCATABLE :: practices(:)

Derived Types

type, public ::  Practice

Components

Type Visibility Attributes Name Initial
integer(kind=short), public :: current
type(thinning), public, ALLOCATABLE :: cuts(:)
integer(kind=short), public :: id
type(DateTime), public :: next

type, public ::  thinning

Components

Type Visibility Attributes Name Initial
real(kind=float), public :: age
real(kind=float), public :: dbh
real(kind=float), public :: density
real(kind=float), public :: height
real(kind=float), public :: intensity
real(kind=float), public :: lai
real(kind=float), public :: leaf_biomass
logical, public :: reforestation
real(kind=float), public :: root_biomass
integer(kind=short), public :: species
real(kind=float), public :: stem_biomass
type(DateTime), public :: time

Functions

private function GetPos(id) result(pos)

return the position in practices array given practice id

Arguments

Type IntentOptional Attributes Name
integer(kind=long), intent(in) :: id

Return Value integer(kind=long)


Subroutines

public subroutine ApplyPlantsManagement(time, pract, density, root, stem, leaf, total, lai, cover, age, height, dbh, stem_yield)

Set variables and options to manage plants. Basically two options are available:

Read more…

Arguments

Type IntentOptional Attributes Name
type(DateTime), intent(in) :: time
type(Practice), intent(inout) :: pract
real(kind=float), intent(inout) :: density
real(kind=float), intent(inout) :: root
real(kind=float), intent(inout) :: stem
real(kind=float), intent(inout) :: leaf
real(kind=float), intent(inout) :: total
real(kind=float), intent(inout) :: lai
real(kind=float), intent(inout) :: cover
real(kind=float), intent(inout) :: age
real(kind=float), intent(inout) :: height
real(kind=float), intent(inout) :: dbh
real(kind=float), intent(out) :: stem_yield

public subroutine SetPlantsManagement(file, begin, end)

Set variables and options to manage plants. Basically two options are available:

Read more…

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: file

file to configure plants management

type(DateTime), intent(in) :: begin

simulation starting date

type(DateTime), intent(in) :: end

simulation ending date

public subroutine SetPractice(id, pract)

Set management practices to single plant stand

Arguments

Type IntentOptional Attributes Name
integer(kind=long), intent(in) :: id
type(Practice), intent(inout) :: pract